(function($){
    // 默认全部配置;
    var config = {
        "isClear": 1,				//[公共配置]是否自动清空value值,1:是0:否
        "isFocus": 1,				//[公共配置]是否自动获取焦点,1:是0:否
        "isShowRight": 0,			//[公共配置]是否标志匹配成功,1:是0:否
        "tipsmsgFadeTime": 2000,		//[公共配置]表单提示消失时间（s）
        "tipsStyle1Time": 3,		//[样式一]震动时间长（短循环长度）
        "tipsStyle1Wh": 10,			//[样式一]震动幅度（px）
        "tipsStyle1Style1Fx": 40,	//[样式一]动画速度（s）
    }
    var ruleType = {
        "isEq" : 'isEq',  											//判断两个节点是否一致
        "isEmpty" : 'isEmpty',   										//判断节点是否为空
        "select" : 'select',   											//下拉框
        "radio" : 'radio',   											//按钮
        "checkbox" : 'checkbox',   										//复选框
        "account" : /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/, 					//匹配字母开头，6-16字符，字母数字下划线
        "pwd" : /^.{6,18}$/, 											//匹配以字母开头，长度在6~18之间，只能包含字符、数字和下划线
        "email" : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,		//匹配Email
        "isChinese": /^[\u4e00-\u9fa5]{6,10}$/,	 						//匹配中文（至少6,10个汉字）
        "isQq": /^[1-9][0-9]{5,}$/,				 						//匹配QQ帐号
        "isInt1" : /^\d+$/, 											//匹配非负整数（正整数+0）
        "isInt2" : /^[0-9]*[1-9][0-9]*$/,  								//匹配正整数
    }
    function setOkStyle(options,style,status){
        if(status){//radio 或 checkbox
            console.log(1);
            $(options.node).parent('p').append("<span class='flashClass right2'></span>");
        }
    }
    function setStyle(options,style,status,isOk){   
        if(status==1){//radio或checkbox控件 验证成功
            $(options.node).parent('p').find('.err2').remove();
            $(options.node).parent('p').find('.right2').remove();
            if(!isOk){//验证失败    
                $(options.node).parent('p').append("<span class='flashClass err2'>"+options.errmsg+"</span>");
            }else{//验证成功
                $(options.node).parent('p').append("<span class='flashClass right2'></span>");
            }
        }
        else{//其他控件
             $(options.node).next().remove('span');
             if(!isOk){//验证失败
                $(options.node).after("<span class='flashClass err2'>"+options.errmsg+"</span>");
            }else{//验证成功
                $(options.node).after("<span class='flashClass right2'></span>");
            }
        }   
        switch(style){
            case 'tipsStyle1':  
                //$(options.node).next().fadeOut(config.tipsmsgFadeTime);
                $('.right2').fadeOut(config.tipsmsgFadeTime);
                $('.err2').fadeOut(config.tipsmsgFadeTime);
                break;
            case 'tipsStyle2':
                //取消所有提示
                $(options.node+'+span').css('position','relative');
                $(options.node).parent('p').find('.err2,.right2').css('position','relative');
                for(var i=0;i<config.tipsStyle1Style1Fx;i++)
                    if(config.tipsStyle1Style1Fx%2==0){
                        $('.err2,.right2').animate({ 
                            left:'2px',
                        },100)
                    }else{
                        $(options.node+'+span').animate({ 
                            left:'0px',
                        },100)
                    }
                    setTimeout(function(){
                    $('.flashClass').remove();
                },config.tipsmsgFadeTime);
                break;
        }
                
    }
    $.extend({
	    ybValidForm : function(options){
                var ruleAdd = options.ruleAdd;
                var settings = $.extend({}, ruleType, options.ruleType);
                for(var i=0;i<ruleAdd.length;i++){
                   var val=$(ruleAdd[i]['node']).val();
                   if(ruleAdd[i].ruleType=='account' || ruleAdd[i].ruleType=='pwd' || ruleAdd[i].ruleType=='isChinese'||ruleAdd[i].ruleType=='isQq'||ruleAdd[i].ruleType=='email'){
                       var reg=new RegExp(settings[ruleAdd[i].ruleType]);
                       if(!reg.test(val)){
                          setStyle(ruleAdd[i],options.tipsStyle);
                       }else{
                           setStyle(ruleAdd[i],options.tipsStyle,0,1);
                       }
                   }
                   if(ruleAdd[i].ruleType=='isEq'){
                       $(ruleAdd[i].node).next().remove('span');
                       if($(ruleAdd[i].node).val()==''){
                           ;
                       }
                       else if(!($(ruleAdd[i].node).val()==$(ruleAdd[i].node2).val())){
                           setStyle(ruleAdd[i],options.tipsStyle);
                       }else{
                           setStyle(ruleAdd[i],options.tipsStyle,0,1);
                       }
                   }
                   if(ruleAdd[i].ruleType=='select'){
                       if(val=='')
                           setStyle(ruleAdd[i],options.tipsStyle);
                       else
                           setStyle(ruleAdd[i],options.tipsStyle,0,1);
                   }
                   if(ruleAdd[i].ruleType=='checkbox'||ruleAdd[i].ruleType=='radio'){
                        if(typeof $(ruleAdd[i].node+':checked').val()=='undefined'){
                            setStyle(ruleAdd[i],options.tipsStyle,1);
                       }else{
                           setStyle(ruleAdd[i],options.tipsStyle,1,1);
                       }
                   }
               } 
	    }
    })
})(jQuery);
